[INFO] fetching crate oximedia-auto 0.1.2...
[INFO] testing oximedia-auto-0.1.2 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate oximedia-auto 0.1.2 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate oximedia-auto 0.1.2
[INFO] finished tweaking crates.io crate oximedia-auto 0.1.2
[INFO] tweaked toml for crates.io crate oximedia-auto 0.1.2 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate oximedia-auto 0.1.2 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oximedia-auto 0.1.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded primal-check v0.3.4
[INFO] [stderr]   Downloaded windowfunctions v0.1.1
[INFO] [stderr]   Downloaded visibility v0.1.1
[INFO] [stderr]   Downloaded oxifft-codegen v0.1.3
[INFO] [stderr]   Downloaded audio-core v0.2.1
[INFO] [stderr]   Downloaded audioadapter v2.0.0
[INFO] [stderr]   Downloaded audioadapter-buffers v2.0.0
[INFO] [stderr]   Downloaded oximedia-io v0.1.2
[INFO] [stderr]   Downloaded realfft v3.5.0
[INFO] [stderr]   Downloaded audioadapter-sample v2.0.0
[INFO] [stderr]   Downloaded rubato v1.0.1
[INFO] [stderr]   Downloaded fontdue v0.9.3
[INFO] [stderr]   Downloaded png v0.18.1
[INFO] [stderr]   Downloaded ttf-parser v0.21.1
[INFO] [stderr]   Downloaded oximedia-edit v0.1.2
[INFO] [stderr]   Downloaded oximedia-core v0.1.2
[INFO] [stderr]   Downloaded oximedia-graph v0.1.2
[INFO] [stderr]   Downloaded oxifft v0.1.3
[INFO] [stderr]   Downloaded rustfft v6.4.1
[INFO] [stderr]   Downloaded oximedia-audio v0.1.2
[INFO] [stderr]   Downloaded oximedia-cv v0.1.2
[INFO] [stderr]   Downloaded jpeg-decoder v0.3.2
[INFO] [stderr]   Downloaded oximedia-codec v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a8a9303919dd400863a56044a7795c2689048c448d59f1a73481cc2f6be62704
[INFO] running `Command { std: "docker" "start" "-a" "a8a9303919dd400863a56044a7795c2689048c448d59f1a73481cc2f6be62704", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a8a9303919dd400863a56044a7795c2689048c448d59f1a73481cc2f6be62704", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8a9303919dd400863a56044a7795c2689048c448d59f1a73481cc2f6be62704", kill_on_drop: false }`
[INFO] [stdout] a8a9303919dd400863a56044a7795c2689048c448d59f1a73481cc2f6be62704
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 570f4e633f550dc252da0ddb2442e12e811b53301b07e9c9ea4d51d37fd4097a
[INFO] running `Command { std: "docker" "start" "-a" "570f4e633f550dc252da0ddb2442e12e811b53301b07e9c9ea4d51d37fd4097a", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling strength_reduce v0.2.4
[INFO] [stderr]    Compiling audio-core v0.2.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling oxifft-codegen v0.1.3
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling transpose v0.2.3
[INFO] [stderr]    Compiling primal-check v0.3.4
[INFO] [stderr]    Compiling audioadapter v2.0.0
[INFO] [stderr]    Compiling audioadapter-sample v2.0.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling seahash v4.1.0
[INFO] [stderr]    Compiling rustfft v6.4.1
[INFO] [stderr]    Compiling spin v0.10.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling audioadapter-buffers v2.0.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling windowfunctions v0.1.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling visibility v0.1.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling oximedia-core v0.1.2
[INFO] [stderr]    Compiling oxifft v0.1.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling ttf-parser v0.21.1
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling oximedia-cv v0.1.2
[INFO] [stderr]    Compiling ndarray v0.17.2
[INFO] [stderr]    Compiling fontdue v0.9.3
[INFO] [stderr]    Compiling oximedia-io v0.1.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling oximedia-codec v0.1.2
[INFO] [stderr]    Compiling realfft v3.5.0
[INFO] [stderr]    Compiling rubato v1.0.1
[INFO] [stderr]    Compiling oximedia-audio v0.1.2
[INFO] [stderr]    Compiling oximedia-graph v0.1.2
[INFO] [stderr]    Compiling oximedia-edit v0.1.2
[INFO] [stderr]    Compiling oximedia-auto v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 13s
[INFO] running `Command { std: "docker" "inspect" "570f4e633f550dc252da0ddb2442e12e811b53301b07e9c9ea4d51d37fd4097a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "570f4e633f550dc252da0ddb2442e12e811b53301b07e9c9ea4d51d37fd4097a", kill_on_drop: false }`
[INFO] [stdout] 570f4e633f550dc252da0ddb2442e12e811b53301b07e9c9ea4d51d37fd4097a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 597f4dfcbddf90a23566de1ab879528b81d59a2c4a801c2817fdc2026a53ab14
[INFO] running `Command { std: "docker" "start" "-a" "597f4dfcbddf90a23566de1ab879528b81d59a2c4a801c2817fdc2026a53ab14", kill_on_drop: false }`
[INFO] [stderr]    Compiling oximedia-auto v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.31s
[INFO] running `Command { std: "docker" "inspect" "597f4dfcbddf90a23566de1ab879528b81d59a2c4a801c2817fdc2026a53ab14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "597f4dfcbddf90a23566de1ab879528b81d59a2c4a801c2817fdc2026a53ab14", kill_on_drop: false }`
[INFO] [stdout] 597f4dfcbddf90a23566de1ab879528b81d59a2c4a801c2817fdc2026a53ab14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6fdffb8603291cf2e0a674fef5e6ba4f0b46c5f66ebbe7a62594024b866f530f
[INFO] running `Command { std: "docker" "start" "-a" "6fdffb8603291cf2e0a674fef5e6ba4f0b46c5f66ebbe7a62594024b866f530f", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_auto-8ed87b0d859615c5)
[INFO] [stdout] 
[INFO] [stdout] running 556 tests
[INFO] [stdout] test a_b_roll::tests::test_default_config_valid ... ok
[INFO] [stdout] test a_b_roll::tests::test_filter_by_category ... ok
[INFO] [stdout] test a_b_roll::tests::test_custom_keyword_mapping ... ok
[INFO] [stdout] test a_b_roll::tests::test_dialogue_gap_creates_suggestion ... ok
[INFO] [stdout] test a_b_roll::tests::test_format_suggestions_non_empty ... ok
[INFO] [stdout] test a_b_roll::tests::test_invalid_min_slot_duration ... ok
[INFO] [stdout] test a_b_roll::tests::test_format_suggestions_empty ... ok
[INFO] [stdout] test a_b_roll::tests::test_empty_inputs_returns_empty ... ok
[INFO] [stdout] test a_b_roll::tests::test_keyword_forest_maps_to_nature ... ok
[INFO] [stdout] test a_b_roll::tests::test_low_importance_generates_suggestion ... ok
[INFO] [stdout] test a_b_roll::tests::test_keyword_suggestion_from_text_segment ... ok
[INFO] [stdout] test a_b_roll::tests::test_max_less_than_min_slot ... ok
[INFO] [stdout] test a_b_roll::tests::test_keyword_city_maps_to_urban_exterior ... ok
[INFO] [stdout] test a_b_roll::tests::test_max_suggestions_limit ... ok
[INFO] [stdout] test a_b_roll::tests::test_keyword_data_maps_to_data_viz ... ok
[INFO] [stdout] test a_b_roll::tests::test_monotony_detection ... ok
[INFO] [stdout] test a_b_roll::tests::test_small_dialogue_gap_ignored ... ok
[INFO] [stdout] test a_b_roll::tests::test_slot_duration ... ok
[INFO] [stdout] test a_b_roll::tests::test_suggestions_sorted_by_priority ... ok
[INFO] [stdout] test a_b_roll::tests::test_overlapping_deduplication ... ok
[INFO] [stdout] test auto_caption::tests::test_result_from_segments_empty ... ok
[INFO] [stdout] test auto_caption::tests::test_caption_language_is_rtl_hebrew ... ok
[INFO] [stdout] test auto_caption::tests::test_config_confidence_threshold_ok ... ok
[INFO] [stdout] test auto_caption::tests::test_caption_language_not_rtl_english ... ok
[INFO] [stdout] test auto_caption::tests::test_result_from_segments_overall_confidence ... ok
[INFO] [stdout] test auto_caption::tests::test_caption_language_farsi_is_rtl ... ok
[INFO] [stdout] test auto_caption::tests::test_result_total_word_count ... ok
[INFO] [stdout] test auto_caption::tests::test_result_total_duration_ms ... ok
[INFO] [stdout] test auto_caption::tests::test_caption_language_is_rtl_arabic ... ok
[INFO] [stdout] test auto_caption::tests::test_segment_word_count ... ok
[INFO] [stdout] test auto_caption::tests::test_segment_duration_ms ... ok
[INFO] [stdout] test auto_chaptering::tests::test_chapter_scene_counts_sum ... ok
[INFO] [stdout] test auto_caption::tests::test_segment_word_count_empty ... ok
[INFO] [stdout] test auto_chaptering::tests::test_chapter_contains ... ok
[INFO] [stdout] test auto_chaptering::tests::test_chapters_cover_full_duration ... ok
[INFO] [stdout] test auto_chaptering::tests::test_chapter_duration_ms ... ok
[INFO] [stdout] test auto_chaptering::tests::test_config_builder ... ok
[INFO] [stdout] test auto_chaptering::tests::test_config_default_valid ... ok
[INFO] [stdout] test auto_chaptering::tests::test_config_max_less_than_min ... ok
[INFO] [stdout] test auto_chaptering::tests::test_config_invalid_min_duration ... ok
[INFO] [stdout] test auto_chaptering::tests::test_dominant_content_type ... ok
[INFO] [stdout] test auto_caption::tests::test_caption_language_not_rtl_japanese ... ok
[INFO] [stdout] test auto_chaptering::tests::test_format_timestamp_line ... ok
[INFO] [stdout] test auto_chaptering::tests::test_format_youtube_chapters ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_chapter_title_action_tense ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_detects_importance_drop ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_chapter_title_empty_scenes ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_chapter_title_with_prefix ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_empty_scenes_error ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_detects_content_type_change ... ok
[INFO] [stdout] test auto_chaptering::tests::test_dominant_sentiment ... ok
[INFO] [stdout] test auto_caption::tests::test_result_filter_by_confidence ... ok
[INFO] [stdout] test auto_chaptering::tests::test_target_chapter_count ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_single_scene ... ok
[INFO] [stdout] test auto_grade::tests::auto_grade_config_default ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_respects_min_duration ... ok
[INFO] [stdout] test auto_grade::tests::auto_grade_config_intensity_clamp ... ok
[INFO] [stdout] test auto_grade::tests::blend_with_identity_at_one_returns_full_grade ... ok
[INFO] [stdout] test auto_grade::tests::blend_with_identity_at_zero_returns_identity ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_with_curve ... ok
[INFO] [stdout] test auto_grade::tests::cinematic_increased_contrast ... ok
[INFO] [stdout] test auto_grade::tests::cinematic_reduced_saturation ... ok
[INFO] [stdout] test auto_grade::tests::cinematic_has_lifted_blacks ... ok
[INFO] [stdout] test auto_chaptering::tests::test_generate_with_default_scenes ... ok
[INFO] [stdout] test auto_grade::tests::grade_style_names ... ok
[INFO] [stdout] test auto_grade::tests::identity_grade_values ... ok
[INFO] [stdout] test auto_grade::tests::misaligned_frame_returns_identity ... ok
[INFO] [stdout] test auto_grade::tests::news_near_neutral_saturation ... ok
[INFO] [stdout] test auto_grade::tests::lerp_midpoint ... ok
[INFO] [stdout] test auto_grade::tests::vintage_reduced_saturation ... ok
[INFO] [stdout] test auto_grade::tests::lerp_arr3_midpoint ... ok
[INFO] [stdout] test auto_grade::tests::vintage_has_positive_lift_red ... ok
[INFO] [stdout] test auto_grade::tests::teal_orange_shadow_blue_lift ... ok
[INFO] [stdout] test auto_grade::tests::social_increased_saturation ... ok
[INFO] [stdout] test auto_grade::tests::empty_frame_returns_identity ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_all_frames_filtered_fallback ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_build_reason_sharp_face ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_config_zero_candidates_invalid ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_config_builder ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_config_default_valid ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_analyze_frame_quality_edge_pattern ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_laplacian_variance_tiny_image ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_analyze_frame_quality_empty_buffer ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_from_scene_features ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_score_frame_motion_blur_penalty ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_empty_frames_error ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_enforces_temporal_gap ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_score_frame_face_boost ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_analyze_frame_quality_uniform ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_rejects_too_bright ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_build_reason_balanced ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_prefers_sharp_frames ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_best_returns_one ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_from_scene_features ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_rejects_too_dark ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_single_frame ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_select_skips_intro_outro ... ok
[INFO] [stdout] test auto_thumbnail::tests::test_thumbnail_candidate_offset_ms ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_config_zero_workers_clamps ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_config_default ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_config_builder ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_executor_add_jobs ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_executor_run_all ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_executor_cancel_pending ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_job_builder ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_job_state_transitions ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_job_failed_and_retry ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_executor_sort_by_priority ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_job_new ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_stats_avg_time ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_stats_success_rate ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_priority_weight ... ok
[INFO] [stdout] test batch_auto::tests::test_batch_stats_empty ... ok
[INFO] [stdout] test color_continuity::tests::test_check_identical_clips_low_score ... ok
[INFO] [stdout] test color_continuity::tests::test_check_luminance_shift_detected ... ok
[INFO] [stdout] test color_continuity::tests::test_chi_squared_identical ... ok
[INFO] [stdout] test color_continuity::tests::test_check_needs_two_clips ... ok
[INFO] [stdout] test color_continuity::tests::test_check_saturation_shift_detected ... ok
[INFO] [stdout] test color_continuity::tests::test_check_temperature_shift_detected ... ok
[INFO] [stdout] test color_continuity::tests::test_chi_squared_different ... ok
[INFO] [stdout] test color_continuity::tests::test_build_description_major ... ok
[INFO] [stdout] test color_continuity::tests::test_config_default_valid ... ok
[INFO] [stdout] test color_continuity::tests::test_build_description_minor ... ok
[INFO] [stdout] test color_continuity::tests::test_config_invalid_threshold ... ok
[INFO] [stdout] test color_continuity::tests::test_flagged_filters_low_scores ... ok
[INFO] [stdout] test color_continuity::tests::test_overall_score_discontinuous ... ok
[INFO] [stdout] test color_continuity::tests::test_overall_score_perfect ... ok
[INFO] [stdout] test color_continuity::tests::test_severity_from_score ... ok
[INFO] [stdout] test color_continuity::tests::test_from_luma_frame_empty ... ok
[INFO] [stdout] test color_continuity::tests::test_from_luma_frame_histogram_shape ... ok
[INFO] [stdout] test color_continuity::tests::test_three_clip_sequence ... ok
[INFO] [stdout] test color_continuity::tests::test_from_luma_frame_uniform ... ok
[INFO] [stdout] test color_continuity::tests::test_remediation_critical_dip_to_black ... ok
[INFO] [stdout] test color_continuity::tests::test_remediation_histogram_color_grade ... ok
[INFO] [stdout] test color_continuity::tests::test_remediation_none_below_threshold ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_auto_color_grader_returns_three ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_auto_color_grader_warm_top_is_vintage ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_consistency_single_grade ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_detect_mood_bright ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_detect_mood_warm ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_consistency_identical_grades ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_detect_mood_cool ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_detect_mood_dark ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_detect_mood_neutral ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_look_preset_vivid ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_consistency_diverse_grades ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_look_preset_cinematic ... ok
[INFO] [stdout] test color_grade_suggest::tests::test_mood_suggested_look ... ok
[INFO] [stdout] test color_match::tests::test_apply_pixel_clamps_low ... ok
[INFO] [stdout] test color_match::tests::test_apply_pixel_clamps_high ... ok
[INFO] [stdout] test color_match::tests::test_compute_from_pixels_empty ... ok
[INFO] [stdout] test color_match::tests::test_identity_transfer_noop ... ok
[INFO] [stdout] test color_match::tests::test_roundtrip_pixel_after_transfer ... ok
[INFO] [stdout] test color_match::tests::test_compute_from_pixels_invalid_length ... ok
[INFO] [stdout] test color_match::tests::test_compute_from_pixels_two_pixels ... ok
[INFO] [stdout] test color_match::tests::test_transfer_same_stats_is_identity ... ok
[INFO] [stdout] test color_match::tests::test_apply_pixel_simple_scale_and_offset ... ok
[INFO] [stdout] test color_match::tests::test_compute_from_pixels_uniform ... ok
[INFO] [stdout] test color_match::tests::test_compute_from_single_pixel ... ok
[INFO] [stdout] test color_match::tests::test_transfer_scales_up ... ok
[INFO] [stdout] test color_match::tests::test_transfer_zero_std_uses_identity_scale ... ok
[INFO] [stdout] test content_index::tests::test_add_and_get_segment ... ok
[INFO] [stdout] test content_index::tests::test_index_len ... ok
[INFO] [stdout] test content_index::tests::test_indexed_segment_with_metadata ... ok
[INFO] [stdout] test content_index::tests::test_search_by_keyword ... ok
[INFO] [stdout] test content_index::tests::test_clear_index ... ok
[INFO] [stdout] test content_index::tests::test_search_case_insensitive ... ok
[INFO] [stdout] test content_index::tests::test_remove_segment ... ok
[INFO] [stdout] test content_index::tests::test_search_limit ... ok
[INFO] [stdout] test content_index::tests::test_search_results_sorted_by_score ... ok
[INFO] [stdout] test content_index::tests::test_search_with_asset_filter ... ok
[INFO] [stdout] test content_index::tests::test_time_range_duration ... ok
[INFO] [stdout] test content_index::tests::test_time_range_duration_negative_clamps ... ok
[INFO] [stdout] test content_index::tests::test_time_range_no_overlap ... ok
[INFO] [stdout] test content_index::tests::test_time_range_overlaps ... ok
[INFO] [stdout] test content_indexer::tests::test_content_index_avg_motion ... ok
[INFO] [stdout] test content_index::tests::test_remove_nonexistent_returns_false ... ok
[INFO] [stdout] test content_index::tests::test_search_min_score_filter ... ok
[INFO] [stdout] test content_indexer::tests::test_content_index_duration_ms ... ok
[INFO] [stdout] test content_indexer::tests::test_dominant_hue_bucket ... ok
[INFO] [stdout] test content_indexer::tests::test_dominant_luma_bucket ... ok
[INFO] [stdout] test content_indexer::tests::test_extract_keyframes_empty_index ... ok
[INFO] [stdout] test content_indexer::tests::test_extract_keyframes_no_duplicates ... ok
[INFO] [stdout] test content_indexer::tests::test_extract_keyframes_respects_max ... ok
[INFO] [stdout] test content_indexer::tests::test_extract_keyframes_sorted ... ok
[INFO] [stdout] test content_indexer::tests::test_extract_keyframes_zero_max ... ok
[INFO] [stdout] test content_indexer::tests::test_feature_distance_different_luma ... ok
[INFO] [stdout] test content_indexer::tests::test_feature_distance_identical ... ok
[INFO] [stdout] test content_indexer::tests::test_feature_distance_symmetry ... ok
[INFO] [stdout] test content_indexer::tests::test_index_builder_build_creates_intervals ... ok
[INFO] [stdout] test content_indexer::tests::test_index_builder_detect_scene_boundaries ... ok
[INFO] [stdout] test content_indexer::tests::test_index_builder_frame_count ... ok
[INFO] [stdout] test content_indexer::tests::test_index_no_boundary_single_scene ... ok
[INFO] [stdout] test content_indexer::tests::test_motion_magnitude ... ok
[INFO] [stdout] test content_indexer::tests::test_normalize_histograms ... ok
[INFO] [stdout] test content_indexer::tests::test_query_similar_frames_empty_index ... ok
[INFO] [stdout] test content_indexer::tests::test_query_similar_frames_sorted ... ok
[INFO] [stdout] test content_indexer::tests::test_query_similar_frames_top1 ... ok
[INFO] [stdout] test content_indexer::tests::test_query_similar_frames_top_k_zero ... ok
[INFO] [stdout] test content_indexer::tests::test_summarize_basic ... ok
[INFO] [stdout] test content_indexer::tests::test_summarize_dominant_colors_count ... ok
[INFO] [stdout] test content_indexer::tests::test_summarize_empty_index ... ok
[INFO] [stdout] test content_warning::tests::test_audio_classify_empty ... ok
[INFO] [stdout] test content_warning::tests::test_audio_classify_loud_transient ... ok
[INFO] [stdout] test content_warning::tests::test_conservative_config_valid ... ok
[INFO] [stdout] test content_warning::tests::test_default_config_valid ... ok
[INFO] [stdout] test content_warning::tests::test_empty_scenes_returns_empty_report ... ok
[INFO] [stdout] test content_warning::tests::test_flashing_light_detection ... ok
[INFO] [stdout] test content_warning::tests::test_format_content_rating_empty ... ok
[INFO] [stdout] test content_warning::tests::test_intense_themes_detection ... ok
[INFO] [stdout] test content_warning::tests::test_report_active_labels_sorted ... ok
[INFO] [stdout] test content_warning::tests::test_invalid_confidence_threshold ... ok
[INFO] [stdout] test content_warning::tests::test_is_general_audience_safe ... ok
[INFO] [stdout] test content_warning::tests::test_strong_language_detection ... ok
[INFO] [stdout] test content_warning::tests::test_merge_adjacent_events ... ok
[INFO] [stdout] test content_warning::tests::test_no_violence_in_calm_scene ... ok
[INFO] [stdout] test content_warning::tests::test_permissive_config_valid ... ok
[INFO] [stdout] test content_warning::tests::test_sudden_audio_detection ... ok
[INFO] [stdout] test content_warning::tests::test_suggest_age_rating ... ok
[INFO] [stdout] test content_warning::tests::test_violence_detection_high_motion ... ok
[INFO] [stdout] test content_warning::tests::test_warning_event_duration ... ok
[INFO] [stdout] test engagement_predictor::tests::test_action_spike_signal_type ... ok
[INFO] [stdout] test engagement_predictor::tests::test_build_interest_curve ... ok
[INFO] [stdout] test engagement_predictor::tests::test_default_config_valid ... ok
[INFO] [stdout] test engagement_predictor::tests::test_completion_rate ... ok
[INFO] [stdout] test engagement_predictor::tests::test_drop_off_zones_detected ... ok
[INFO] [stdout] test engagement_predictor::tests::test_empty_scenes_error ... ok
[INFO] [stdout] test engagement_predictor::tests::test_high_interest_slows_decay ... ok
[INFO] [stdout] test engagement_predictor::tests::test_hook_score_uses_first_window ... ok
[INFO] [stdout] test engagement_predictor::tests::test_invalid_decay ... ok
[INFO] [stdout] test engagement_predictor::tests::test_invalid_hook_window ... ok
[INFO] [stdout] test engagement_predictor::tests::test_long_form_config_valid ... ok
[INFO] [stdout] test engagement_predictor::tests::test_re_engagement_detected_for_high_score_scenes ... ok
[INFO] [stdout] test engagement_predictor::tests::test_retention_monotonically_decreasing_for_constant_low_interest ... ok
[INFO] [stdout] test engagement_predictor::tests::test_short_form_config_valid ... ok
[INFO] [stdout] test highlight_reel::tests::test_default_config_values ... ok
[INFO] [stdout] test highlight_reel::tests::test_duration_frames_normal ... ok
[INFO] [stdout] test highlight_reel::tests::test_is_highlight_above_threshold ... ok
[INFO] [stdout] test highlight_reel::tests::test_is_highlight_at_exact_threshold ... ok
[INFO] [stdout] test highlight_reel::tests::test_is_highlight_below_threshold ... ok
[INFO] [stdout] test highlight_reel::tests::test_select_empty_input ... ok
[INFO] [stdout] test highlight_reel::tests::test_select_filters_below_threshold ... ok
[INFO] [stdout] test highlight_reel::tests::test_select_filters_short_clips ... ok
[INFO] [stdout] test highlight_reel::tests::test_select_greedy_by_score ... ok
[INFO] [stdout] test highlight_reel::tests::test_select_output_sorted_by_start_frame ... ok
[INFO] [stdout] test highlight_reel::tests::test_select_respects_max_duration ... ok
[INFO] [stdout] test highlight_reel::tests::test_total_duration_empty ... ok
[INFO] [stdout] test highlight_reel::tests::test_total_duration_multiple_clips ... ok
[INFO] [stdout] test music_sync::tests::test_bars_between ... ok
[INFO] [stdout] test music_sync::tests::test_beat_grid_from_bpm ... ok
[INFO] [stdout] test music_sync::tests::test_clip_pacer_basic ... ok
[INFO] [stdout] test music_sync::tests::test_clip_pacer_empty_clips ... ok
[INFO] [stdout] test music_sync::tests::test_clip_pacer_empty_cuts ... ok
[INFO] [stdout] test music_sync::tests::test_cut_point_energy_range ... ok
[INFO] [stdout] test music_sync::tests::test_downbeats_extracted ... ok
[INFO] [stdout] test music_sync::tests::test_generate_cut_points_count ... ok
[INFO] [stdout] test music_sync::tests::test_generate_cut_points_downbeat_flag ... ok
[INFO] [stdout] test music_sync::tests::test_generate_cut_points_empty_grid ... ok
[INFO] [stdout] test music_sync::tests::test_nearest_beat ... ok
[INFO] [stdout] test music_video_sync::tests::test_bar_interval_ms ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_grid_downbeats_4beat_bar ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_grid_generate_120bpm ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_grid_generate_negative_duration ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_grid_generate_with_offset ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_grid_generate_zero_bpm ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_grid_phrase_starts ... ok
[INFO] [stdout] test music_video_sync::tests::test_beat_interval_ms ... ok
[INFO] [stdout] test engagement_predictor::tests::test_overall_engagement_bounded ... ok
[INFO] [stdout] test engagement_predictor::tests::test_single_scene_prediction ... ok
[INFO] [stdout] test highlight_reel::tests::test_duration_frames_zero_when_inverted ... ok
[INFO] [stdout] test engagement_predictor::tests::test_pacing_suggestions_low_completion ... ok
[INFO] [stdout] test music_video_sync::tests::test_nearest_beat_empty_grid ... ok
[INFO] [stdout] test music_video_sync::tests::test_nearest_beat_exact ... ok
[INFO] [stdout] test music_video_sync::tests::test_plan_cuts_on_downbeat ... ok
[INFO] [stdout] test music_video_sync::tests::test_nearest_beat_between ... ok
[INFO] [stdout] test music_video_sync::tests::test_plan_cuts_on_phrase ... ok
[INFO] [stdout] test music_video_sync::tests::test_plan_cuts_on_beat ... ok
[INFO] [stdout] test music_video_sync::tests::test_plan_cuts_on_transient_empty ... ok
[INFO] [stdout] test music_video_sync::tests::test_re_align_leaves_outside_tolerance ... ok
[INFO] [stdout] test music_video_sync::tests::test_plan_cuts_respects_duration ... ok
[INFO] [stdout] test music_video_sync::tests::test_score_half_interval_misalignment ... ok
[INFO] [stdout] test music_video_sync::tests::test_score_perfect_alignment ... ok
[INFO] [stdout] test music_video_sync::tests::test_video_sync_point_dissolve ... ok
[INFO] [stdout] test music_video_sync::tests::test_video_sync_point_hard_cut ... ok
[INFO] [stdout] test music_video_sync::tests::test_re_align_snaps_within_tolerance ... ok
[INFO] [stdout] test music_video_sync::tests::test_score_empty_cuts ... ok
[INFO] [stdout] test music_video_sync::tests::test_score_in_valid_range ... ok
[INFO] [stdout] test music_video_sync::tests::test_score_empty_grid ... ok
[INFO] [stdout] test narrative::tests::test_act_duration_out_of_range ... ok
[INFO] [stdout] test narrative::tests::test_act_duration_sums_approx_total ... ok
[INFO] [stdout] test narrative::tests::test_build_arc_documentary ... ok
[INFO] [stdout] test narrative::tests::test_scene_assigner_empty_arc ... ok
[INFO] [stdout] test narrative::tests::test_scene_assigner_empty_clips ... ok
[INFO] [stdout] test narrative::tests::test_scene_assigner_high_energy_prefers_climax ... ok
[INFO] [stdout] test narrative::tests::test_template_durations ... ok
[INFO] [stdout] test narrative::tests::test_scene_assigner_returns_correct_count ... ok
[INFO] [stdout] test narrative::tests::test_total_weight ... ok
[INFO] [stdout] test narrative::tests::test_shot_type_hint_scoring_action ... ok
[INFO] [stdout] test narrative::tests::test_shot_type_hint_scoring_wide ... ok
[INFO] [stdout] test narrative_structure::tests::test_analyzer_fit_score_in_range ... ok
[INFO] [stdout] test narrative_structure::tests::test_arc_fit_score_empty_beats ... ok
[INFO] [stdout] test narrative_structure::tests::test_analyzer_new ... ok
[INFO] [stdout] test narrative_structure::tests::test_analyzer_optimize_pacing ... ok
[INFO] [stdout] test narrative_structure::tests::test_arc_fit_score_returns_valid_range ... ok
[INFO] [stdout] test narrative_structure::tests::test_detect_arc_returns_an_arc ... ok
[INFO] [stdout] test narrative_structure::tests::test_arc_fit_score_single_beat ... ok
[INFO] [stdout] test narrative_structure::tests::test_detect_arc_empty ... ok
[INFO] [stdout] test narrative_structure::tests::test_detect_arc_linearly_rising_favors_three_act ... ok
[INFO] [stdout] test narrative_structure::tests::test_emotional_beat_clamping ... ok
[INFO] [stdout] test narrative_structure::tests::test_emotional_beat_weight ... ok
[INFO] [stdout] test narrative_structure::tests::test_five_act_template_range ... ok
[INFO] [stdout] test narrative_structure::tests::test_optimize_pacing_empty_noop ... ok
[INFO] [stdout] test engagement_predictor::tests::test_worst_drop_off_returns_highest_severity ... ok
[INFO] [stdout] test narrative_structure::tests::test_hero_journey_template_range ... ok
[INFO] [stdout] test narrative::tests::test_build_arc_commercial ... ok
[INFO] [stdout] test narrative_structure::tests::test_kishotenketsu_template_range ... ok
[INFO] [stdout] test engagement_predictor::tests::test_smooth_scores_returns_correct_length ... ok
[INFO] [stdout] test narrative_structure::tests::test_optimize_pacing_monotone_timestamps ... ok
[INFO] [stdout] test narrative_structure::tests::test_optimize_pacing_preserves_count ... ok
[INFO] [stdout] test narrative_structure::tests::test_segment_empty_beats ... ok
[INFO] [stdout] test narrative_structure::tests::test_segment_five_act ... ok
[INFO] [stdout] test narrative_structure::tests::test_segment_kishotenketsu ... ok
[INFO] [stdout] test pacing_editor::tests::test_auto_pacing_adjustment_empty ... ok
[INFO] [stdout] test narrative_structure::tests::test_three_act_template_range ... ok
[INFO] [stdout] test narrative_structure::tests::test_segment_hero_journey ... ok
[INFO] [stdout] test pacing_editor::tests::test_auto_pacing_adjustment_frame_cursor ... ok
[INFO] [stdout] test narrative_structure::tests::test_story_beat_duration ... ok
[INFO] [stdout] test narrative_structure::tests::test_story_beat_is_climactic ... ok
[INFO] [stdout] test pacing_editor::tests::test_action_pacing_target ... ok
[INFO] [stdout] test pacing_editor::tests::test_auto_pacing_adjustment_speed_up ... ok
[INFO] [stdout] test pacing_editor::tests::test_documentary_pacing_target ... ok
[INFO] [stdout] test pacing_editor::tests::test_edit_suggestion_confidence_clamp ... ok
[INFO] [stdout] test narrative_structure::tests::test_segment_three_act ... ok
[INFO] [stdout] test pacing_editor::tests::test_pacing_editor_apply_merges_short_clip ... ok
[INFO] [stdout] test pacing_editor::tests::test_pacing_editor_apply_splits_long_clip ... ok
[INFO] [stdout] test pacing_editor::tests::test_pacing_editor_new ... ok
[INFO] [stdout] test pacing_editor::tests::test_suggest_cuts_multiple_clips ... ok
[INFO] [stdout] test pacing_editor::tests::test_suggest_cuts_too_long ... ok
[INFO] [stdout] test pacing_editor::tests::test_suggest_cuts_too_short ... ok
[INFO] [stdout] test quality_gate::tests::test_all_passing_metrics_returns_pass ... ok
[INFO] [stdout] test quality_gate::tests::test_custom_threshold_added ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_verdict_is_fail ... ok
[INFO] [stdout] test quality_gate::tests::test_gate_verdict_is_pass ... ok
[INFO] [stdout] test quality_gate::tests::test_issue_remediation_present ... ok
[INFO] [stdout] test quality_gate::tests::test_loudness_out_of_range_causes_warning ... ok
[INFO] [stdout] test quality_gate::tests::test_low_audio_bitrate_causes_failure ... ok
[INFO] [stdout] test quality_gate::tests::test_low_psnr_causes_warning_not_error ... ok
[INFO] [stdout] test quality_gate::tests::test_low_video_bitrate_causes_failure ... ok
[INFO] [stdout] test pacing_editor::tests::test_pacing_editor_analyze ... ok
[INFO] [stdout] test pacing_editor::tests::test_suggest_cuts_no_suggestion_within_range ... ok
[INFO] [stdout] test quality_gate::tests::test_metric_threshold_at_least ... ok
[INFO] [stdout] test pacing_editor::tests::test_drama_pacing_target ... ok
[INFO] [stdout] test quality_gate::tests::test_metric_threshold_at_most ... ok
[INFO] [stdout] test quality_gate::tests::test_metric_threshold_between ... ok
[INFO] [stdout] test quality_gate::tests::test_missing_metric_not_evaluated ... ok
[INFO] [stdout] test quality_gate::tests::test_true_peak_too_high_causes_failure ... ok
[INFO] [stdout] test quality_gate::tests::test_warnings_cause_failure_mode ... ok
[INFO] [stdout] test scene_classifier::tests::test_classification_classes_above_threshold ... ok
[INFO] [stdout] test scene_classifier::tests::test_classification_empty_top_class ... ok
[INFO] [stdout] test scene_classifier::tests::test_classifier_batch_classify ... ok
[INFO] [stdout] test scene_classifier::tests::test_scene_class_contains_faces ... ok
[INFO] [stdout] test scene_classifier::tests::test_scene_class_is_outdoor ... ok
[INFO] [stdout] test scene_classifier::tests::test_score_threshold_clamps_above_one ... ok
[INFO] [stdout] test scene_classifier::tests::test_score_threshold_clamps_below_zero ... ok
[INFO] [stdout] test scene_classifier::tests::test_score_threshold_passes ... ok
[INFO] [stdout] test scene_classifier::tests::test_classification_top_class ... ok
[INFO] [stdout] test scene_classifier::tests::test_classification_top_score ... ok
[INFO] [stdout] test scene_classifier::tests::test_classifier_classify_basic ... ok
[INFO] [stdout] test scene_description::tests::activity_motion_detected_when_high_motion ... ok
[INFO] [stdout] test scene_classifier::tests::test_scene_class_label_nonempty ... ok
[INFO] [stdout] test scene_classifier::tests::test_classifier_classify_filters_below_threshold ... ok
[INFO] [stdout] test scene_description::tests::activity_list_not_empty ... ok
[INFO] [stdout] test scene_description::tests::activity_muted_palette_when_low_saturation ... ok
[INFO] [stdout] test scene_description::tests::activity_vibrant_colours_when_high_saturation ... ok
[INFO] [stdout] test scene_description::tests::features_has_high_motion ... ok
[INFO] [stdout] test scene_description::tests::features_is_dark ... ok
[INFO] [stdout] test scene_description::tests::features_is_bright ... ok
[INFO] [stdout] test scene_description::tests::infer_day_bright_daylight ... ok
[INFO] [stdout] test scene_description::tests::features_is_warm ... ok
[INFO] [stdout] test scene_description::tests::features_is_daylight ... ok
[INFO] [stdout] test scene_description::tests::infer_indoor_warm_moderate ... ok
[INFO] [stdout] test scene_description::tests::infer_mood_sad ... ok
[INFO] [stdout] test scene_description::tests::infer_mood_energetic ... ok
[INFO] [stdout] test scene_description::tests::infer_night ... ok
[INFO] [stdout] test scene_description::tests::infer_mood_happy ... ok
[INFO] [stdout] test scene_description::tests::infer_mood_tense_high_contrast_fast_motion ... ok
[INFO] [stdout] test scene_description::tests::infer_sunset ... ok
[INFO] [stdout] test scene_description::tests::infer_sunrise ... ok
[INFO] [stdout] test scene_description::tests::infer_mood_peaceful ... ok
[INFO] [stdout] test scene_description::tests::time_of_day_labels ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_boundary_classification ... ok
[INFO] [stdout] test scene_description::tests::mood_labels ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_adaptive_detection ... ok
[INFO] [stdout] test scene_description::tests::scene_description_construction ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_config_builder ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_config_threshold_clamping ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_boundaries_to_scenes ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_config_default ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_config_validate_bad_window ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_detected_scene_length ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_empty_metrics ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_merge_short_scenes ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_min_scene_frames_suppression ... ok
[INFO] [stdout] test segment_merge::tests::test_config_builder ... ok
[INFO] [stdout] test segment_merge::tests::test_merge_adjacent_within_gap ... ok
[INFO] [stdout] test segment_merge::tests::test_merge_empty ... ok
[INFO] [stdout] test segment_merge::tests::test_merge_overlapping ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_fixed_threshold_detection ... ok
[INFO] [stdout] test segment_merge::tests::test_merge_with ... ok
[INFO] [stdout] test scene_detect_auto::tests::test_two_pass_detection ... ok
[INFO] [stdout] test segment_merge::tests::test_merge_preserves_order ... ok
[INFO] [stdout] test segment_merge::tests::test_merge_single ... ok
[INFO] [stdout] test segment_merge::tests::test_no_merge_large_gap ... ok
[INFO] [stdout] test segment_merge::tests::test_max_duration_prevents_merge ... ok
[INFO] [stdout] test segment_merge::tests::test_segment_gap ... ok
[INFO] [stdout] test segment_merge::tests::test_short_segments_removed ... ok
[INFO] [stdout] test smart_crop::tests::test_config_aspect_ratio_zero_height ... ok
[INFO] [stdout] test segment_merge::tests::test_segment_display ... ok
[INFO] [stdout] test smart_crop::tests::test_cropper_crop_clamped_to_source ... ok
[INFO] [stdout] test segment_merge::tests::test_segment_overlaps ... ok
[INFO] [stdout] test smart_crop::tests::test_salient_region_area ... ok
[INFO] [stdout] test smart_crop::tests::test_cropper_no_crop_when_output_equals_source ... ok
[INFO] [stdout] test segment_merge::tests::test_segment_duration ... ok
[INFO] [stdout] test smart_crop::tests::test_config_aspect_ratio ... ok
[INFO] [stdout] test smart_crop::tests::test_salient_region_area_zero ... ok
[INFO] [stdout] test smart_reframe::tests::test_detect_salient_regions_edge_highlighted ... ok
[INFO] [stdout] test smart_crop::tests::test_salient_region_centre ... ok
[INFO] [stdout] test smart_crop::tests::test_crop_result_crop_area ... ok
[INFO] [stdout] test smart_crop::tests::test_cropper_analyze_filters_by_saliency ... ok
[INFO] [stdout] test smart_crop::tests::test_cropper_suggest_crop_applied ... ok
[INFO] [stdout] test smart_reframe::tests::test_detect_salient_regions_too_small ... ok
[INFO] [stdout] test smart_reframe::tests::test_detect_salient_regions_uniform_image ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_sequence_before_first_keyframe ... ok
[INFO] [stdout] test smart_reframe::tests::test_crop_size_for_source_16_to_9 ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_sequence_after_last_keyframe ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_sequence_keyframe_count ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_window_center ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_window_clamped ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_window_lerp_midpoint ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_window_lerp_t0 ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_window_lerp_t1 ... ok
[INFO] [stdout] test smart_reframe::tests::test_saliency_map_from_values_mismatch ... ok
[INFO] [stdout] test smart_reframe::tests::test_saliency_map_get_oob ... ok
[INFO] [stdout] test smart_reframe::tests::test_saliency_map_uniform_sum ... ok
[INFO] [stdout] test smart_reframe::tests::test_saliency_top_fraction_bounds ... ok
[INFO] [stdout] test smart_reframe::tests::test_saliency_weighted_centroid_uniform ... ok
[INFO] [stdout] test smart_reframe::tests::test_smooth_trajectory_empty ... ok
[INFO] [stdout] test smart_reframe::tests::test_smooth_trajectory_no_smoothing ... ok
[INFO] [stdout] test smart_reframe::tests::test_smooth_trajectory_preserves_length ... ok
[INFO] [stdout] test smart_reframe::tests::test_smooth_trajectory_reduces_jumps ... ok
[INFO] [stdout] test smart_trim::tests::test_action_peak_is_automatic ... ok
[INFO] [stdout] test smart_trim::tests::test_default_trimmer_fields ... ok
[INFO] [stdout] test smart_trim::tests::test_find_trim_points_boundaries_only ... ok
[INFO] [stdout] test smart_trim::tests::test_find_trim_points_empty_frame_count ... ok
[INFO] [stdout] test smart_trim::tests::test_find_trim_points_scene_changes_added ... ok
[INFO] [stdout] test smart_trim::tests::test_find_trim_points_silence_regions_added ... ok
[INFO] [stdout] test smart_trim::tests::test_find_trim_points_sorted_ascending ... ok
[INFO] [stdout] test smart_trim::tests::test_is_confident_above_threshold ... ok
[INFO] [stdout] test smart_trim::tests::test_is_confident_at_exact_threshold ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_sequence_interpolate_between ... ok
[INFO] [stdout] test smart_trim::tests::test_is_confident_below_threshold ... ok
[INFO] [stdout] test smart_trim::tests::test_scene_change_confidence_equals_sensitivity ... ok
[INFO] [stdout] test smart_trim::tests::test_manual_in_not_automatic ... ok
[INFO] [stdout] test smart_reframe::tests::test_reframe_sequence_empty ... ok
[INFO] [stdout] test smart_trim::tests::test_silence_end_is_automatic ... ok
[INFO] [stdout] test smart_trim::tests::test_scene_change_is_automatic ... ok
[INFO] [stdout] test smart_trim::tests::test_silence_confidence_is_fixed ... ok
[INFO] [stdout] test smart_trim::tests::test_manual_out_not_automatic ... ok
[INFO] [stdout] test subtitle_sync::tests::test_align_subtitle_no_later_event_unchanged ... ok
[INFO] [stdout] test smart_trim::tests::test_silence_start_is_automatic ... ok
[INFO] [stdout] test subtitle_sync::tests::test_detect_sync_offset_positive ... ok
[INFO] [stdout] test subtitle_sync::tests::test_detect_sync_offset_empty ... ok
[INFO] [stdout] test subtitle_sync::tests::test_duration_ms ... ok
[INFO] [stdout] test subtitle_sync::tests::test_align_subtitle_to_audio_shifts_forward ... ok
[INFO] [stdout] test subtitle_sync::tests::test_detect_sync_offset_negative ... ok
[INFO] [stdout] test subtitle_sync::tests::test_fix_sync_offset_positive ... ok
[INFO] [stdout] test subtitle_sync::tests::test_reading_speed_cps ... ok
[INFO] [stdout] test subtitle_sync::tests::test_validator_end_before_start ... ok
[INFO] [stdout] test subtitle_sync::tests::test_duration_ms_zero_when_inverted ... ok
[INFO] [stdout] test subtitle_sync::tests::test_validator_ok ... ok
[INFO] [stdout] test subtitle_sync::tests::test_fix_sync_offset_negative_clamp ... ok
[INFO] [stdout] test subtitle_sync::tests::test_reading_speed_cps_zero_duration ... ok
[INFO] [stdout] test subtitle_sync::tests::test_subtitle_confidence_clamped ... ok
[INFO] [stdout] test subtitle_sync::tests::test_validator_too_fast ... ok
[INFO] [stdout] test subtitle_sync::tests::test_validator_too_short ... ok
[INFO] [stdout] test tag_suggest::tests::test_audio_events_included ... ok
[INFO] [stdout] test subtitle_sync::tests::test_word_count ... ok
[INFO] [stdout] test tag_suggest::tests::test_categorize_unknown_label ... ok
[INFO] [stdout] test tag_suggest::tests::test_deduplication ... ok
[INFO] [stdout] test tag_suggest::tests::test_confidence_threshold ... ok
[INFO] [stdout] test tag_suggest::tests::test_extract_from_text_keywords ... ok
[INFO] [stdout] test subtitle_sync::tests::test_word_count_empty ... ok
[INFO] [stdout] test tag_suggest::tests::test_max_per_category ... ok
[INFO] [stdout] test tag_suggest::tests::test_max_total_limit ... ok
[INFO] [stdout] test tag_suggest::tests::test_suggest_from_object_labels ... ok
[INFO] [stdout] test tag_suggest::tests::test_suggest_from_scene_labels ... ok
[INFO] [stdout] test tag_suggest::tests::test_suggest_mood_negative ... ok
[INFO] [stdout] test tag_suggest::tests::test_suggest_mood_positive ... ok
[INFO] [stdout] test tag_suggest::tests::test_tag_category_equality ... ok
[INFO] [stdout] test tag_suggest::tests::test_tag_suggestion_clamps_confidence ... ok
[INFO] [stdout] test tag_suggest::tests::test_tags_sorted_by_confidence_descending ... ok
[INFO] [stdout] test tag_suggest::tests::test_empty_features_returns_empty ... ok
[INFO] [stdout] test tempo_detect::tests::test_beat_event_fields ... ok
[INFO] [stdout] test tempo_detect::tests::test_analyse_silence ... ok
[INFO] [stdout] test tempo_detect::tests::test_config_builder ... ok
[INFO] [stdout] test tempo_detect::tests::test_default_config ... ok
[INFO] [stdout] test tempo_detect::tests::test_empty_input ... ok
[INFO] [stdout] test tempo_detect::tests::test_smooth_identity ... ok
[INFO] [stdout] test tempo_detect::tests::test_smooth_window ... ok
[INFO] [stdout] test transition_suggest::tests::test_action_appropriate_transitions ... ok
[INFO] [stdout] test transition_suggest::tests::test_cut_duration_is_zero ... ok
[INFO] [stdout] test transition_suggest::tests::test_dissolve_duration_nonzero ... ok
[INFO] [stdout] test transition_suggest::tests::test_suggest_cross_zoom_close_to_insert ... ok
[INFO] [stdout] test transition_suggest::tests::test_suggest_cut_as_default ... ok
[INFO] [stdout] test transition_suggest::tests::test_suggest_dip_for_mood_change ... ok
[INFO] [stdout] test transition_suggest::tests::test_suggest_dissolve_for_scene_change_only ... ok
[INFO] [stdout] test transition_suggest::tests::test_suggest_fade_for_scene_and_time_jump ... ok
[INFO] [stdout] test tempo_detect::tests::test_tempo_analysis_clone ... ok
[INFO] [stdout] test transition_suggest::tests::test_transition_plan_add_clip ... ok
[INFO] [stdout] test transition_suggest::tests::test_transition_plan_auto_suggest ... ok
[INFO] [stdout] test transition_suggest::tests::test_transition_plan_default ... ok
[INFO] [stdout] test tempo_detect::tests::test_confidence_range ... ok
[INFO] [stdout] test tempo_detect::tests::test_analyse_clicks ... ok
[INFO] [stdout] test transition_suggest::tests::test_transition_plan_set_transition ... ok
[INFO] [stdout] test transition_suggest::tests::test_transition_plan_set_transition_overwrite ... ok
[INFO] [stdout] test visual_theme::tests::test_extract_palette_empty ... ok
[INFO] [stdout] test visual_theme::tests::test_palette_similarity_empty ... ok
[INFO] [stdout] test visual_theme::tests::test_palette_similarity_identical ... ok
[INFO] [stdout] test visual_theme::tests::test_extract_palette_solid ... ok
[INFO] [stdout] test visual_theme::tests::test_quantise ... ok
[INFO] [stdout] test visual_theme::tests::test_rgb_distance_different ... ok
[INFO] [stdout] test visual_theme::tests::test_rgb_distance_same ... ok
[INFO] [stdout] test visual_theme::tests::test_rgb_luminance_white ... ok
[INFO] [stdout] test visual_theme::tests::test_rgb_luminance_black ... ok
[INFO] [stdout] test visual_theme::tests::test_colour_palette_len ... ok
[INFO] [stdout] test visual_theme::tests::test_score_against_warm_theme ... ok
[INFO] [stdout] test tempo_detect::tests::test_onset_strategies ... ok
[INFO] [stdout] test tempo_detect::tests::test_bpm_clamped_to_range ... ok
[INFO] [stdout] test workflow_auto::tests::test_auto_edit_template ... ok
[INFO] [stdout] test workflow_auto::tests::test_engine_add_steps ... ok
[INFO] [stdout] test visual_theme::tests::test_theme_presets_all ... ok
[INFO] [stdout] test visual_theme::tests::test_config_builder ... ok
[INFO] [stdout] test workflow_auto::tests::test_engine_dry_run ... ok
[INFO] [stdout] test workflow_auto::tests::test_engine_execute_sequential ... ok
[INFO] [stdout] test workflow_auto::tests::test_engine_validate_forward_dep ... ok
[INFO] [stdout] test workflow_auto::tests::test_engine_validate_ok ... ok
[INFO] [stdout] test workflow_auto::tests::test_step_builder ... ok
[INFO] [stdout] test workflow_auto::tests::test_summary_empty ... ok
[INFO] [stdout] test workflow_auto::tests::test_step_new ... ok
[INFO] [stdout] test workflow_auto::tests::test_workflow_config_default ... ok
[INFO] [stdout] test workflow_auto::tests::test_summary_success_rate ... ok
[INFO] [stdout] test workflow_auto::tests::test_step_deps_satisfied ... ok
[INFO] [stdout] test workflow_auto::tests::test_workflow_config_builder ... ok
[INFO] [stdout] test workflow_auto::tests::test_engine_validate_missing_dep ... ok
[INFO] [stdout] test smart_reframe::tests::test_compute_optimal_crop_clamped ... ok
[INFO] [stderr]    Doc-tests oximedia_auto
[INFO] [stdout] test smart_reframe::tests::test_compute_optimal_crop_center_uniform ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 556 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.78s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test src/a_b_roll.rs - a_b_roll (line 21) ... ok
[INFO] [stdout] test src/error.rs - error::AutoError (line 18) ... ok
[INFO] [stdout] test src/color_continuity.rs - color_continuity (line 17) ... ok
[INFO] [stdout] test src/lib.rs - (line 101) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 62) - compile ... ok
[INFO] [stdout] test src/auto_chaptering.rs - auto_chaptering (line 14) ... ok
[INFO] [stdout] test src/lib.rs - (line 83) - compile ... ok
[INFO] [stdout] test src/content_warning.rs - content_warning (line 16) ... ok
[INFO] [stdout] test src/cuts.rs - cuts (line 13) ... ok
[INFO] [stdout] test src/assembly.rs - assembly (line 13) ... ok
[INFO] [stdout] test src/engagement_predictor.rs - engagement_predictor (line 21) ... ok
[INFO] [stdout] test src/auto_thumbnail.rs - auto_thumbnail (line 17) ... ok
[INFO] [stdout] test src/highlights.rs - highlights (line 14) ... ok
[INFO] [stdout] test src/scoring.rs - scoring (line 16) ... ok
[INFO] [stdout] test src/lib.rs - AutoEditor::new (line 325) ... ok
[INFO] [stdout] test src/rules.rs - rules (line 14) ... ok
[INFO] [stdout] test src/scene_description.rs - scene_description::SceneDescriptionGenerator::analyze (line 198) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.85s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6fdffb8603291cf2e0a674fef5e6ba4f0b46c5f66ebbe7a62594024b866f530f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fdffb8603291cf2e0a674fef5e6ba4f0b46c5f66ebbe7a62594024b866f530f", kill_on_drop: false }`
[INFO] [stdout] 6fdffb8603291cf2e0a674fef5e6ba4f0b46c5f66ebbe7a62594024b866f530f
